home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / TinyGL / ami / content / ad709 / tinygl / README.txt < prev    next >
Encoding:
Text File  |  2002-08-15  |  3.7 KB  |  119 lines

  1. TinyGL (c) 1997-2002 Fabrice Bellard.
  2. TinyGL AmigaDE  (c) 2002 Ruben Monteiro.
  3.  
  4.  
  5. General Description:
  6. --------------------
  7.  
  8. TinyGL is intended to be a very small implementation of a subset of
  9. OpenGL* for embedded systems or games. 
  10.  
  11. The main features of TinyGL are:
  12.  
  13. - Header compatible with OpenGL (the headers are adapted from the very good
  14. Mesa by Brian Paul et al.)
  15.  
  16. - Zlib-like licence for easy integration in commercial designs (read
  17. the LICENCE file).
  18.  
  19. - GLX / Wiggle like API (IGL) to use it with AmigaDE.
  20.  
  21. - GLUT subset for easy development of demos.
  22.  
  23. - OpenGL like lightening.
  24.  
  25. - Complete OpenGL selection mode handling for object picking.
  26.  
  27. - 16 bit Z buffer. 16/24/32 bit RGB rendering. High speed dithering to
  28. paletted 8 bits if needed. High speed conversion to 24 bit packed
  29. pixel or 32 bit RGBA if needed.
  30.  
  31. - Fast Gouraud shadding optimized for 16 bit RGB.
  32.  
  33. - Fast texture mapping capabilities, with perspective correction and
  34. texture objects.
  35.  
  36. - 32 bit float only arithmetic.
  37.  
  38. - Very small: compiled library size is around 80Kb under AmigaDE. The file
  39.   src/zfeatures.h can be used to remove some unused features from
  40.   TinyGL.
  41.  
  42. - C sources for GCC on 32/64 bit architectures. It has been tested
  43. succesfully on x86-Linux and sparc-Solaris.
  44.  
  45.  
  46.  
  47. Architecture:
  48. -------------
  49.  
  50. TinyGL is made up four main modules:
  51.  
  52. - Mathematical routines (zmath).
  53.  
  54. - OpenGL-like emulation (zgl).
  55.  
  56. - Z buffer and rasterisation (zbuffer).
  57.  
  58. - IGL interface.
  59.  
  60.  
  61. Notes - limitations:
  62. --------------------
  63.  
  64. - See the file 'LIMITATIONS' to see the current functions supported by the API.
  65.  
  66. - The multithreading could be easily implemented since no global state
  67. is maintainted. The library gets the current context with a function
  68. which can be modified.
  69.  
  70. - The lightening is not very fast. I supposed that in most games the
  71. lightening is computed by the 3D engine.
  72.  
  73. - Some changes are needed for 64 bit pointers for the handling of
  74. arrays of float with the GLParam union.
  75.  
  76. - No user clipping planes are supported.
  77.  
  78. - No color index mode (no longer useful !)
  79.  
  80. - The mipmapping is not implemented.
  81.  
  82. - The perspecture correction in the mapping code does not use W but
  83. 1/Z. In any 'normal scene' it should work.
  84.  
  85. - The resizing of the viewport in IGL ensures that the width and
  86. the height are multiples of 4. This is not optimal because some pixels
  87. of the window may not be refreshed.
  88.  
  89. Why ?
  90. -----
  91.  
  92. TinyGL was developped as a student project for a Virtual Reality
  93. network system called VReng (see the VReng home page at
  94. http://www-inf.enst.fr/vreng).
  95.  
  96. At that time (January 1997), my initial project was to write my own 3D
  97. rasterizer based on some old sources I wrote. But I realized that it
  98. would be better to use OpenGL to work on any platform. My problem was
  99. that I wanted to use texture mapping which was (and is still) quite
  100. slower on many software OpenGL implementation. I could have modified
  101. Mesa to suit my needs, but I really wanted to use my old sources for
  102. that project. 
  103.  
  104. I finally decided to use the same syntax as OpenGL but with my own
  105. libraries, thinking that later it could ease the porting of VReng to
  106. OpenGL.
  107.  
  108. Now VReng is at last compatible with OpenGL, and I managed to patch
  109. TinyGL so that VReng can still work with it without any modifications.
  110.  
  111. Since TinyGL may be useful for some people, especially in the world of
  112. embedded designs, I decided to release it 'as is', otherwise, it would
  113. have been lost on my hard disk !
  114.  
  115. ------------------------------------------------------------------------------
  116. * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
  117. ------------------------------------------------------------------------------
  118. Fabrice Bellard.
  119.